home *** CD-ROM | disk | FTP | other *** search
- Path: usenet.ee.pdx.edu!fastrac.llnl.gov!wsrcc.com!hack.dragoman.com!wetware!sgiblab!swrinde!cs.utexas.edu!math.ohio-state.edu!howland.reston.ans.net!newsserver.jvnc.net!rutgers!cbmvax!chrisg
- From: chrisg@cbmvax.cbm.commodore.com (Chris Green)
- Newsgroups: comp.sys.amiga.programmer
- Subject: Re: hardware banging != bad code or AmigaDOS is bad code CRAP.
- Message-ID: <C83H4y.I2n@cbmvax.cbm.commodore.com>
- Date: 4 Jun 93 11:26:57 GMT
- References: <Jesse_Michael.040j@matrix.rain.com>
- Reply-To: chrisg@cbmvax.cbm.commodore.com (Chris Green)
- Organization: Commodore, West Chester, PA
- Lines: 58
-
- In article <Jesse_Michael.040j@matrix.rain.com> Jesse_Michael@matrix.rain.com (Jesse Michael) writes:
- >In a message dated Wed 2 Jun 93 14:06, jmccoull@bruny.cc.utas.edu.au
- >(James McCoull) wrote:
- >
- >>Sure... but you can still get around this. ScrollVPort is running from
- >>rom, so most data/instruction transfers will be on the fastram databus.
- >>Thus the trick goes something like this... Still under 1.3 on my A1000
- >>I think ScrollVPort takes about 78-80 raster lines [during 4 bitplane
- >>video dma, no overscan].
- >
- >78 to 80 raster lines is 29.8% to 30.5% of the cpu time. My test routine
- >took a little more than half a raster line to switch 8 bitplanes and update
- >the copper list when running on a 2 bitplane hi-res screen w/ no overscan.
-
- A simple timing test of ChangeVPBitMap on a standard no-fast-ram
- A1200 shows that this call can page-flip 4285 times per second. Note that
- this code is in C (and even calling ChangeVPBitMap via stack arguments
- and stubs), and is not even doing the trick of turning off intermediate
- copperlist update.
- This is with an 8 bitplane intuition screen.
- source (compiler warnings and all) follows. It's not really worth
- copiling and running unless you want to verify the timings, since it
- doesn't do anything even slightly cool while running.
- I've already posted timings of ScrollVPort for 8 bitplane lores
- screens under 3.0 on A1200s.
-
- #include <exec/types.h>
- #include <graphics/gfx.h>
- #include <intuition/intuition.h>
- #include <intuition/screens.h>
-
- main()
- {
- struct Screen *myscreen;
- struct DBufInfo *mydbi;
- void *temp;
- int i;
- ULONG secs,micros,oldsecs;
- myscreen=OpenScreenTags(0,SA_DisplayID,0,SA_Depth,8,0);
- mydbi=AllocDBufInfo(&(myscreen->ViewPort));
- CurrentTime(&oldsecs,µs);
- for(i=0;i<60000;i++)
- {
- ChangeVPBitMap(&(myscreen->ViewPort),myscreen->RastPort.BitMap,mydbi);
- }
- CurrentTime(&secs,µs);
- printf("#secs=%d\n",secs-oldsecs);
- FreeDBufInfo(mydbi);
- CloseScreen(myscreen);
- }
- --
- *-------------------------------------------*---------------------------*
- |Chris Green - Graphics Software Engineer - chrisg@commodore.COM f
- | Commodore-Amiga - rutgers!cbmvax!chrisg n
- |My opinions are my own, and do not - icantforgettheimpression o
- |necessarily represent those of my employer.- youmadeyouleftaholeinthe r
- |"A screaming comes across the sky..." - backofmyhead d
- *-------------------------------------------*---------------------------*
-
-